Attribute Evaluation Meets Strategic Programming
نویسندگان
چکیده
Attribute grammars are a powerful specification formalism for tree-based computation, particularly for software language processing. Various extensions have been proposed to abstract over common patterns in attribute grammar specifications. These include various forms of copy rules to support non-local dependencies, collection attributes, and expressing dependencies that are evaluated to a fixed point. Rather than implementing extensions natively in an attribute evaluator, we propose attribute decorators that describe an abstract evaluation mechanism for attributes, making it possible to provide such extensions as part of a library of decorators. Inspired by strategic programming, they are specified using generic traversal operators. To demonstrate their effectiveness, we describe how to employ decorators in name, type, and flow analysis.
منابع مشابه
Decorated Attribute Grammars: Attribute Evaluation Meets Strategic Programming
Attribute grammars are a powerful specification formalism for treebased computation, particularly for software language processing. Various extensions have been proposed to abstract over common patterns in attribute grammar specifications. These include various forms of copy rules to support non-local dependencies, collection attributes, and expressing dependencies that are evaluated to a fixed...
متن کاملGeneric Operations and Partial Evaluation for Strategic Programming
Model-driven software development is a promising new application area for partial evaluation. We have proposed Strategic Programming as a paradigm for model interpretation and compilation by partial evaluation. In this paper we present Pummel, a kernel language for writing generic model-based code. Pummel is a firstorder subset of Scheme with objects and monoid comprehensions. The use of Pummel...
متن کاملSoftware ENgineering Strategic Programming Meets Adaptive Programming
Strategic programming is a generic programming idiom for processing compound data such as terms or object structures. At the heart of the approach is the separation of two concerns: basic data-processing computations vs. traversal schemes. Actual traversals can be composed by passing the former as arguments to the latter. Traversal schemes can be defined by the strategic programmer using a comb...
متن کاملDependable Software through Higher-order Strategic Programming
Program transformation is a restricted form of software construction that can be amenable to formal verification. When successful, the nature of the evidence provided by such a verification is considered strong and can constitute a major component of an argument that a high-consequence or safety-critical system meets its dependability requirements. This article explores the application of novel...
متن کاملIncremental semantic evaluation for interactive systems: inertia, pre-emption, and relations
Although schemes for incremental semantic evaluation have been explored and refined for more than two decades, the demands of user interaction continue to outstrip the capabilities of these schemes. The feedback produced by a semantic evaluator must support the user's programming activities: it must be structured in a way that provides the user with meaningful insight into the program (directly...
متن کامل